home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / ams__l~1.zoo / src / tcd.icc < prev    next >
Encoding:
Text File  |  1993-09-05  |  7.0 KB  |  365 lines

  1.     asm("
  2.         .data
  3.     TCDraw:
  4.         .long TCDQ,TCD1,TCD2,TCD3,TCD4,TCD5,TCD6,TCD7
  5.         .long TCD8,TCD9,TCD10,TCD11,TCD12,TCD13,TCD14,TCD15
  6.         .long TCD16,TCD17,TCD18,TCD19,TCD20,TCD21,TCD22,TCDCMD
  7.         .long TCD24,TCD25,TCD26,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD
  8.         .long TCD32,TCD33,TCD34,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD
  9.         .long TCD40,TCD41,TCD42,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD
  10.         .long TCD48,TCD49,TCD50,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD
  11.         .long TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD,TCDCMD
  12.  
  13.         .text
  14.  
  15.         moveml    d2-d7/a2-a6,sp@-
  16.         movel    %2,%1@+
  17.  
  18.     TCDCMD:
  19.         movel    #TCDraw,a2
  20.         movew    %0@+,d0
  21.         aslw    #2,d0
  22.         movel        a2@(d0:w),a0
  23.         jmp        a0@
  24.  
  25.     TCD1:
  26.         movel    %0@+,a6
  27.         movew    %0@+,d0
  28.         movew    a6@(%2:l),%1@+
  29.         movew    d0,a6@(%2:l)
  30.         movew    %0@+,d0
  31.         aslw    #2,d0
  32.         movel    a2@(d0:w),a0
  33.         jmp        a0@
  34.  
  35.     TCD2:
  36.         movel    %0@+,a6
  37.         movel    %0@+,d0
  38.         movel    a6@(%2:l),%1@+
  39.         movel    d0,a6@(%2:l)
  40.         movew    %0@+,d0
  41.         aslw    #2,d0
  42.         movel    a2@(d0:w),a0
  43.         jmp        a0@
  44.  
  45.     TCD3:
  46.         movel    %0@+,a6
  47.         movel    %0@+,d0
  48.         movew    %0@+,d1
  49.         movel    a6@(%2:l),%1@+
  50.         movew    a6@(4,%2:l),%1@+
  51.         movel    d0,a6@(%2:l)
  52.         movew    d1,a6@(4,%2:l)
  53.         movew    %0@+,d0
  54.         aslw    #2,d0
  55.         movel    a2@(d0:w),a0
  56.         jmp        a0@
  57.  
  58.     TCD4:
  59.         movel    %0@+,a6
  60.         movel    %0@+,d0
  61.         movel    %0@+,d1
  62.         movel    a6@(%2:l),%1@+
  63.         movel    a6@(4,%2:l),%1@+
  64.         movel    d0,a6@(%2:l)
  65.         movel    d1,a6@(4,%2:l)
  66.         movew    %0@+,d0
  67.         aslw    #2,d0
  68.         movel    a2@(d0:w),a0
  69.         jmp        a0@
  70.  
  71.     TCD5:
  72.         movel    %0@+,a6
  73.         movel    %0@+,d0
  74.         movel    %0@+,d1
  75.         movew    %0@+,d2
  76.         movel    a6@(%2:l),%1@+
  77.         movel    a6@(4,%2:l),%1@+
  78.         movew    a6@(8,%2:l),%1@+
  79.         movel    d0,a6@(%2:l)
  80.         movel    d1,a6@(4,%2:l)
  81.         movew    d2,a6@(8,%2:l)
  82.         movew    %0@+,d0
  83.         aslw    #2,d0
  84.         movel    a2@(d0:w),a0
  85.         jmp        a0@
  86.     
  87.     TCD6:
  88.         movel    %0@+,a6
  89.         moveml    a6@(%2:l),d0-d1/d2
  90.         moveml    d0-d1/d2,%1@
  91.         addl    #12,%1
  92.         moveml    %0@+,d0-d1/d2
  93.         moveml    d0-d1/d2,a6@(%2:l)
  94.         movew    %0@+,d0
  95.         aslw    #2,d0
  96.         movel    a2@(d0:w),a0
  97.         jmp        a0@
  98.  
  99.     
  100.     TCD7:
  101.         movel    %0@+,a6
  102.         movew    a6@(%2:l),a3
  103.         movew    a3,%1@+
  104.         moveml    a6@(2,%2:l),d0-d1/d2
  105.         moveml    d0-d1/d2,%1@
  106.         addl    #12,%1
  107.         movew    %0@+,a3
  108.         movew    a3,a6@(%2:l)
  109.         moveml    %0@+,d0-d1/d2
  110.         moveml    d0-d1/d2,a6@(2,%2:l)
  111.         movew    %0@+,d0
  112.         aslw    #2,d0
  113.         movel    a2@(d0:w),a0
  114.         jmp        a0@
  115.  
  116.     
  117.     TCD8:
  118.         movel    %0@+,a6
  119.         moveml    a6@(%2:l),d0-d1/d2/d3
  120.         moveml    d0-d1/d2/d3,%1@
  121.         addl    #16,%1
  122.         moveml    %0@+,d0-d1/d2/d3
  123.         moveml    d0-d1/d2/d3,a6@(%2:l)
  124.         movew    %0@+,d0
  125.         aslw    #2,d0
  126.         movel    a2@(d0:w),a0
  127.         jmp        a0@
  128.  
  129.     
  130.     TCD9:
  131.         movel    %0@+,a6
  132.         movew    a6@(%2:l),a3
  133.         movew    a3,%1@+
  134.         moveml    a6@(2,%2:l),d0-d1/d2/d3
  135.         moveml    d0-d1/d2/d3,%1@
  136.         addl    #16,%1
  137.         movew    %0@+,a3
  138.         movew    a3,a6@(%2:l)
  139.         moveml    %0@+,d0-d1/d2/d3
  140.         moveml    d0-d1/d2/d3,a6@(2,%2:l)
  141.         movew    %0@+,d0
  142.         aslw    #2,d0
  143.         movel    a2@(d0:w),a0
  144.         jmp        a0@
  145.  
  146.     
  147.     TCD10:
  148.         movel    %0@+,a6
  149.         moveml    a6@(%2:l),d0-d1/d2/d3/d4
  150.         moveml    d0-d1/d2/d3/d4,%1@
  151.         addl    #20,%1
  152.         moveml    %0@+,d0-d1/d2/d3/d4
  153.         moveml    d0-d1/d2/d3/d4,a6@(%2:l)
  154.         movew    %0@+,d0
  155.         aslw    #2,d0
  156.         movel    a2@(d0:w),a0
  157.         jmp        a0@
  158.  
  159.     
  160.     TCD11:
  161.         movel    %0@+,a6
  162.         movew    a6@(%2:l),a3
  163.         movew    a3,%1@+
  164.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4
  165.         moveml    d0-d1/d2/d3/d4,%1@
  166.         addl    #20,%1
  167.         movew    %0@+,a3
  168.         movew    a3,a6@(%2:l)
  169.         moveml    %0@+,d0-d1/d2/d3/d4
  170.         moveml    d0-d1/d2/d3/d4,a6@(2,%2:l)
  171.         movew    %0@+,d0
  172.         aslw    #2,d0
  173.         movel    a2@(d0:w),a0
  174.         jmp        a0@
  175.  
  176.     
  177.     TCD12:
  178.         movel    %0@+,a6
  179.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5
  180.         moveml    d0-d1/d2/d3/d4/d5,%1@
  181.         addl    #24,%1
  182.         moveml    %0@+,d0-d1/d2/d3/d4/d5
  183.         moveml    d0-d1/d2/d3/d4/d5,a6@(%2:l)
  184.         movew    %0@+,d0
  185.         aslw    #2,d0
  186.         movel    a2@(d0:w),a0
  187.         jmp        a0@
  188.  
  189.     
  190.     TCD13:
  191.         movel    %0@+,a6
  192.         movew    a6@(%2:l),a3
  193.         movew    a3,%1@+
  194.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4/d5
  195.         moveml    d0-d1/d2/d3/d4/d5,%1@
  196.         addl    #24,%1
  197.         movew    %0@+,a3
  198.         movew    a3,a6@(%2:l)
  199.         moveml    %0@+,d0-d1/d2/d3/d4/d5
  200.         moveml    d0-d1/d2/d3/d4/d5,a6@(2,%2:l)
  201.         movew    %0@+,d0
  202.         aslw    #2,d0
  203.         movel    a2@(d0:w),a0
  204.         jmp        a0@
  205.  
  206.     
  207.     TCD14:
  208.         movel    %0@+,a6
  209.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5/d6
  210.         moveml    d0-d1/d2/d3/d4/d5/d6,%1@
  211.         addl    #28,%1
  212.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6
  213.         moveml    d0-d1/d2/d3/d4/d5/d6,a6@(%2:l)
  214.         movew    %0@+,d0
  215.         aslw    #2,d0
  216.         movel    a2@(d0:w),a0
  217.         jmp        a0@
  218.  
  219.     
  220.     TCD15:
  221.         movel    %0@+,a6
  222.         movew    a6@(%2:l),a3
  223.         movew    a3,%1@+
  224.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4/d5/d6
  225.         moveml    d0-d1/d2/d3/d4/d5/d6,%1@
  226.         addl    #28,%1
  227.         movew    %0@+,a3
  228.         movew    a3,a6@(%2:l)
  229.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6
  230.         moveml    d0-d1/d2/d3/d4/d5/d6,a6@(2,%2:l)
  231.         movew    %0@+,d0
  232.         aslw    #2,d0
  233.         movel    a2@(d0:w),a0
  234.         jmp        a0@
  235.  
  236.     
  237.     TCD16:
  238.         movel    %0@+,a6
  239.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5/d6/a0
  240.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,%1@
  241.         addl    #32,%1
  242.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0
  243.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,a6@(%2:l)
  244.         movew    %0@+,d0
  245.         aslw    #2,d0
  246.         movel    a2@(d0:w),a0
  247.         jmp        a0@
  248.  
  249.     
  250.     TCD17:
  251.         movel    %0@+,a6
  252.         movew    a6@(%2:l),a3
  253.         movew    a3,%1@+
  254.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4/d5/d6/a0
  255.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,%1@
  256.         addl    #32,%1
  257.         movew    %0@+,a3
  258.         movew    a3,a6@(%2:l)
  259.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0
  260.         moveml    d0-d1/d2/d3/d4/d5/d6/a0,a6@(2,%2:l)
  261.         movew    %0@+,d0
  262.         aslw    #2,d0
  263.         movel    a2@(d0:w),a0
  264.         jmp        a0@
  265.  
  266.     
  267.     TCD18:
  268.         movel    %0@+,a6
  269.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5/d6/a0/a1
  270.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,%1@
  271.         addl    #36,%1
  272.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0/a1
  273.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,a6@(%2:l)
  274.         movew    %0@+,d0
  275.         aslw    #2,d0
  276.         movel    a2@(d0:w),a0
  277.         jmp        a0@
  278.  
  279.     
  280.     TCD19:
  281.         movel    %0@+,a6
  282.         movew    a6@(%2:l),a3
  283.         movew    a3,%1@+
  284.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4/d5/d6/a0/a1
  285.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,%1@
  286.         addl    #36,%1
  287.         movew    %0@+,a3
  288.         movew    a3,a6@(%2:l)
  289.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0/a1
  290.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1,a6@(2,%2:l)
  291.         movew    %0@+,d0
  292.         aslw    #2,d0
  293.         movel    a2@(d0:w),a0
  294.         jmp        a0@
  295.  
  296.     
  297.     TCD20:
  298.         movel    %0@+,a6
  299.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  300.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,%1@
  301.         addl    #40,%1
  302.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  303.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,a6@(%2:l)
  304.         movel    #TCDraw,a2
  305.         movew    %0@+,d0
  306.         aslw    #2,d0
  307.         movel        a2@(d0:w),a0
  308.         jmp        a0@
  309.  
  310.     
  311.     TCD21:
  312.         movel    %0@+,a6
  313.         movew    a6@(%2:l),a3
  314.         movew    a3,%1@+
  315.         moveml    a6@(2,%2:l),d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  316.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,%1@
  317.         addl    #40,%1
  318.         movew    %0@+,a3
  319.         movew    a3,a6@(%2:l)
  320.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2
  321.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2,a6@(2,%2:l)
  322.         movel    #TCDraw,a2
  323.         movew    %0@+,d0
  324.         aslw    #2,d0
  325.         movel        a2@(d0:w),a0
  326.         jmp        a0@
  327.  
  328.     
  329.     TCD22:
  330.         movel    %0@+,a6
  331.         moveml    a6@(%2:l),d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3
  332.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3,%1@
  333.         addl    #44,%1
  334.         moveml    %0@+,d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3
  335.         moveml    d0-d1/d2/d3/d4/d5/d6/a0/a1/a2/a3,a6@(%2:l)
  336.         movel    #TCDraw,a2
  337.         movew    %0@+,d0
  338.         aslw    #2,d0
  339.         movel        a2@(d0:w),a0
  340.         jmp        a0@
  341.  
  342.     
  343.     TCD24:
  344.     TCD25:
  345.     TCD26:
  346.     TCD32:
  347.     TCD33:
  348.     TCD34:
  349.     TCD40:
  350.     TCD41:
  351.     TCD42:
  352.     TCD48:
  353.     TCD49:
  354.     TCD50:
  355.     TCDQ:
  356.         moveml    sp@+,d2-d7/a2-a6
  357.     " : // No outputs
  358.         : // Inputs
  359.         "a" (Data),
  360.         "a" (Store),
  361.         "d" (At)
  362.         : "d0","d1","d2","d3","d4","d5","d6",
  363.             "a0","a1","a2","a3","a6"
  364.     );
  365.